With the increasing availability of powerful embedded application processors and the ongoing evolution of the improved operating standards (e.g., HTML5, CSS, JavaScript, and W3C standards), web browsers on mobile devices have gradually become one of the most popular applications. Simultaneously, web browsers have also become unique applications that are complex enough to make efficient execution on mobile devices a difficult challenge.
For example, browsers interact with a large number of software and hardware components (e.g., graphics, multimedia, networking, runtime system, and kernel components) of the embedded platform. This type of interaction with so many different components creates complex problems that need to be addressed to improve the efficiency and performance.
Browsers, for example, typically carry out management activities (e.g., DNS prefetching, speculative resource prefetching, garbage collection by virtual machines (e.g., scripting-language-based engines including JavaScript engines), block memory moves, runtime data collection, runtime profiling, etc.) that enable browser components (e.g., resource loaders, networking components, HTTP engines, virtual machines (e.g., JavaScript engines), HTML parsers, CSS components, painting, and rendering components) to function efficiently and display the web content in a viewable format on the mobile device. These management activities do not involve the direct processing of web content, but are important for the proper and/or enhanced operation of the browser components.
But when a browser management activity (e.g., garbage collection by a virtual machine such as JavaScript (JS), Dalvik VM, and ActionScript VM, DNS prefetch, resource prefetch) is performed, there can be an adverse interaction between the browser management activity and one or more of the browser components that may encounter a noticeable degradation (e.g., due to garbage collection consuming CPU) in the actual or perceived performance of the browser, or lead to overloading of the network causing additional delays (due to DNS prefetch, or resource prefetch) if the browser is already actively downloading other necessary resources. This is especially true in mobile devices, which tend to have slower memory systems and tend to be connected to slower networks when compared to the powerful laptops and desktops that are typically connected to faster Wi-Fi networks and high speed wired networks.
As a consequence, it would be desirable to have apparatus and methods for improved execution of browser management activities relative to the browser processing activities of the browser components.